<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>mcdma: Overview</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">mcdma
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__mcdma.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Overview</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1bc2a65071095610e00ba9012176882c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga1bc2a65071095610e00ba9012176882c">XMcdma_DisableCh</a>(Chan, ChanId)</td></tr>
<tr class="memdesc:ga1bc2a65071095610e00ba9012176882c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable Particular Channel in the MCDMA Core.  <a href="#ga1bc2a65071095610e00ba9012176882c">More...</a><br/></td></tr>
<tr class="separator:ga1bc2a65071095610e00ba9012176882c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabeff42d8209d2ec458c68e01ca33e227"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gabeff42d8209d2ec458c68e01ca33e227">XMcdma_GetChan</a>(Chan)&#160;&#160;&#160;XMcdma_ReadReg(Chan-&gt;ChanBase, XMCDMA_CHSER_OFFSET)</td></tr>
<tr class="memdesc:gabeff42d8209d2ec458c68e01ca33e227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Channel number that last Serviced.  <a href="#gabeff42d8209d2ec458c68e01ca33e227">More...</a><br/></td></tr>
<tr class="separator:gabeff42d8209d2ec458c68e01ca33e227"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41c96779020fb2e7a57a5a9b0c6796dc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga41c96779020fb2e7a57a5a9b0c6796dc">XMcdma_isidle</a>(Chan)</td></tr>
<tr class="memdesc:ga41c96779020fb2e7a57a5a9b0c6796dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks whether DMA is Idle or not.  <a href="#ga41c96779020fb2e7a57a5a9b0c6796dc">More...</a><br/></td></tr>
<tr class="separator:ga41c96779020fb2e7a57a5a9b0c6796dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61b5376a97f50b705e511b61cf3a60fa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga61b5376a97f50b705e511b61cf3a60fa">XMcdma_IntrEnable</a>(Chan, Mask)</td></tr>
<tr class="memdesc:ga61b5376a97f50b705e511b61cf3a60fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function enables interrupts specified by the Mask in specified direction, Interrupts that are not in the mask are not affected.  <a href="#ga61b5376a97f50b705e511b61cf3a60fa">More...</a><br/></td></tr>
<tr class="separator:ga61b5376a97f50b705e511b61cf3a60fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cae8085bfa21556cdf49fd6deb3e988"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga0cae8085bfa21556cdf49fd6deb3e988">XMcdma_IntrDisable</a>(Chan, Mask)</td></tr>
<tr class="memdesc:ga0cae8085bfa21556cdf49fd6deb3e988"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function disables interrupts specified by the Mask.  <a href="#ga0cae8085bfa21556cdf49fd6deb3e988">More...</a><br/></td></tr>
<tr class="separator:ga0cae8085bfa21556cdf49fd6deb3e988"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade198ec9289ba1e4fdc6f93dc0497f53"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gade198ec9289ba1e4fdc6f93dc0497f53">XMcdma_GetPktDrp_cnt</a>(Chan)&#160;&#160;&#160;XMcdma_ReadReg(Chan-&gt;ChanBase, XMCDMA_CPKTDROP_OFFSET)</td></tr>
<tr class="memdesc:gade198ec9289ba1e4fdc6f93dc0497f53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets global Packet drop Count.  <a href="#gade198ec9289ba1e4fdc6f93dc0497f53">More...</a><br/></td></tr>
<tr class="separator:gade198ec9289ba1e4fdc6f93dc0497f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga073e95182b25a8427ae5f5a0d7896ee3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga073e95182b25a8427ae5f5a0d7896ee3">XMcdma_GetMcdmaTxChan</a>(InstancePtr, ChanId)&#160;&#160;&#160;(&amp;((InstancePtr)-&gt;Tx_Chan[ChanId]))</td></tr>
<tr class="memdesc:ga073e95182b25a8427ae5f5a0d7896ee3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the TX Channel Pointer.  <a href="#ga073e95182b25a8427ae5f5a0d7896ee3">More...</a><br/></td></tr>
<tr class="separator:ga073e95182b25a8427ae5f5a0d7896ee3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa74b7d0275bf35929090bc363e40e8e4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaa74b7d0275bf35929090bc363e40e8e4">XMcdma_GetMcdmaRxChan</a>(InstancePtr, ChanId)&#160;&#160;&#160;(&amp;((InstancePtr)-&gt;Rx_Chan[ChanId]))</td></tr>
<tr class="memdesc:gaa74b7d0275bf35929090bc363e40e8e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the RX Channel Pointer.  <a href="#gaa74b7d0275bf35929090bc363e40e8e4">More...</a><br/></td></tr>
<tr class="separator:gaa74b7d0275bf35929090bc363e40e8e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d47abf303bec3ae6d5aa7fdebc7c580"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga2d47abf303bec3ae6d5aa7fdebc7c580">XMcdma_GetChanCurBd</a>(Chan)&#160;&#160;&#160;((Chan)-&gt;BdRestart)</td></tr>
<tr class="memdesc:ga2d47abf303bec3ae6d5aa7fdebc7c580"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the Channel BD Chain Current BD.  <a href="#ga2d47abf303bec3ae6d5aa7fdebc7c580">More...</a><br/></td></tr>
<tr class="separator:ga2d47abf303bec3ae6d5aa7fdebc7c580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga89a47e23338e81af4b70fc1695dd0dc7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga89a47e23338e81af4b70fc1695dd0dc7">XMcdma_GetChanBdDoneCnt</a>(Chan)&#160;&#160;&#160;((Chan)-&gt;BdDoneCnt)</td></tr>
<tr class="memdesc:ga89a47e23338e81af4b70fc1695dd0dc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This functions gives the Buffer descriptor count processed by the h/w.  <a href="#ga89a47e23338e81af4b70fc1695dd0dc7">More...</a><br/></td></tr>
<tr class="separator:ga89a47e23338e81af4b70fc1695dd0dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3d29e0b1c602b5217f446c30e29d418"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gab3d29e0b1c602b5217f446c30e29d418">XMcdma_ChanGetIrq</a>(Chan)</td></tr>
<tr class="memdesc:gab3d29e0b1c602b5217f446c30e29d418"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets the interrupts that are asserted.  <a href="#gab3d29e0b1c602b5217f446c30e29d418">More...</a><br/></td></tr>
<tr class="separator:gab3d29e0b1c602b5217f446c30e29d418"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa173f1c898d8325859c852d88debb703"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaa173f1c898d8325859c852d88debb703">XMcdma_ChanAckIrq</a>(Chan, Mask)</td></tr>
<tr class="memdesc:gaa173f1c898d8325859c852d88debb703"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function acknowledges the interrupts that are specified in Mask.  <a href="#gaa173f1c898d8325859c852d88debb703">More...</a><br/></td></tr>
<tr class="separator:gaa173f1c898d8325859c852d88debb703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfce8f7b9dc25e7340a2a6c41ecd1a6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gabfce8f7b9dc25e7340a2a6c41ecd1a6a">XMcdma_GetChanPktDrp_Cnt</a>(Chan, ChanId)</td></tr>
<tr class="memdesc:gabfce8f7b9dc25e7340a2a6c41ecd1a6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Packet drop Count for the particular Channel.  <a href="#gabfce8f7b9dc25e7340a2a6c41ecd1a6a">More...</a><br/></td></tr>
<tr class="separator:gabfce8f7b9dc25e7340a2a6c41ecd1a6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga429520331f11493daf6c29e1e453dd39"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga429520331f11493daf6c29e1e453dd39">XMcdma_SetARCache</a>(InstancePtr, Value)</td></tr>
<tr class="memdesc:ga429520331f11493daf6c29e1e453dd39"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the ARCACHE field with the user specified value.  <a href="#ga429520331f11493daf6c29e1e453dd39">More...</a><br/></td></tr>
<tr class="separator:ga429520331f11493daf6c29e1e453dd39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa37c506ba7ce16b5c7fd371aba2d99c6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaa37c506ba7ce16b5c7fd371aba2d99c6">XMcdma_SetAWCache</a>(InstancePtr, Value)</td></tr>
<tr class="memdesc:gaa37c506ba7ce16b5c7fd371aba2d99c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the AWCACHE field with the user specified value.  <a href="#gaa37c506ba7ce16b5c7fd371aba2d99c6">More...</a><br/></td></tr>
<tr class="separator:gaa37c506ba7ce16b5c7fd371aba2d99c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fb6fc557536472a892bece103e81278"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga8fb6fc557536472a892bece103e81278">XMcdma_GetEgressObserver</a>(InstancePtr, ObsId)</td></tr>
<tr class="memdesc:ga8fb6fc557536472a892bece103e81278"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Egress Channel Observer contents.  <a href="#ga8fb6fc557536472a892bece103e81278">More...</a><br/></td></tr>
<tr class="separator:ga8fb6fc557536472a892bece103e81278"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a81f3da8edddfb80691f066d9534f0b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga9a81f3da8edddfb80691f066d9534f0b">XMcdma_GetIngressObserver</a>(InstancePtr, ObsId)</td></tr>
<tr class="memdesc:ga9a81f3da8edddfb80691f066d9534f0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Ingress Channel Observer contents.  <a href="#ga9a81f3da8edddfb80691f066d9534f0b">More...</a><br/></td></tr>
<tr class="separator:ga9a81f3da8edddfb80691f066d9534f0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a9c2fa82ee0b3c7518b7b9125a447e0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>(BaseAddress, Offset)&#160;&#160;&#160;(*(u32 *)(((UINTPTR)(void *)(BaseAddress)) + (u32)(Offset)))</td></tr>
<tr class="memdesc:ga4a9c2fa82ee0b3c7518b7b9125a447e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the given Buffer Descriptor word.  <a href="#ga4a9c2fa82ee0b3c7518b7b9125a447e0">More...</a><br/></td></tr>
<tr class="separator:ga4a9c2fa82ee0b3c7518b7b9125a447e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeea700e622c21664095d4015fdb3c182"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaeea700e622c21664095d4015fdb3c182">XMcdma_BdRead64</a>(BaseAddress, Offset)&#160;&#160;&#160;(*(u64 *)(((UINTPTR)(void *)(BaseAddress)) + (u32)(Offset)))</td></tr>
<tr class="memdesc:gaeea700e622c21664095d4015fdb3c182"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the given Buffer Descriptor word.  <a href="#gaeea700e622c21664095d4015fdb3c182">More...</a><br/></td></tr>
<tr class="separator:gaeea700e622c21664095d4015fdb3c182"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e9ebef9ab28ab4e942a1c6415cebc08"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>(BaseAddress, Offset, Data)&#160;&#160;&#160;(*(u32 *)((UINTPTR)(void *)(BaseAddress) + (u32)(Offset))) = (u32)(Data)</td></tr>
<tr class="memdesc:ga2e9ebef9ab28ab4e942a1c6415cebc08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the given Buffer Descriptor word.  <a href="#ga2e9ebef9ab28ab4e942a1c6415cebc08">More...</a><br/></td></tr>
<tr class="separator:ga2e9ebef9ab28ab4e942a1c6415cebc08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1edd764edccb7e6c240eed49bd073ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gac1edd764edccb7e6c240eed49bd073ae">XMcdma_BdWrite64</a>(BaseAddress, Offset, Data)&#160;&#160;&#160;(*(u64 *)((UINTPTR)(void *)(BaseAddress) + (u32)(Offset))) = (u64)(Data)</td></tr>
<tr class="memdesc:gac1edd764edccb7e6c240eed49bd073ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the given Buffer Descriptor double word.  <a href="#gac1edd764edccb7e6c240eed49bd073ae">More...</a><br/></td></tr>
<tr class="separator:gac1edd764edccb7e6c240eed49bd073ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85e21c6be33fd36ffb9e559f53dfa2b4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga85e21c6be33fd36ffb9e559f53dfa2b4">XMcDma_BdGetSts</a>(BdPtr)&#160;&#160;&#160;<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_STS_OFFSET)</td></tr>
<tr class="memdesc:ga85e21c6be33fd36ffb9e559f53dfa2b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the status of a Ingress(S2MM) BD.  <a href="#ga85e21c6be33fd36ffb9e559f53dfa2b4">More...</a><br/></td></tr>
<tr class="separator:ga85e21c6be33fd36ffb9e559f53dfa2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga369b7454a39ba87d032c2f40394360f8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga369b7454a39ba87d032c2f40394360f8">XMcdma_BdHwCompleted</a>(BdPtr)</td></tr>
<tr class="memdesc:ga369b7454a39ba87d032c2f40394360f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a Ingress(S2MM) BD has completed in hardware.  <a href="#ga369b7454a39ba87d032c2f40394360f8">More...</a><br/></td></tr>
<tr class="separator:ga369b7454a39ba87d032c2f40394360f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga884435b89a533b2195af16a29d41c5d2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga884435b89a533b2195af16a29d41c5d2">XMcDma_BdGetActualLength</a>(BdPtr, LengthMask)</td></tr>
<tr class="memdesc:ga884435b89a533b2195af16a29d41c5d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the actual transfer length of a Ingress (S2MM)BD.  <a href="#ga884435b89a533b2195af16a29d41c5d2">More...</a><br/></td></tr>
<tr class="separator:ga884435b89a533b2195af16a29d41c5d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga82a87f60a63faa72e95feea2d1af82a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga82a87f60a63faa72e95feea2d1af82a6">XMcDma_TxBdGetSts</a>(BdPtr)&#160;&#160;&#160;<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SIDEBAND_STS_OFFSET)</td></tr>
<tr class="memdesc:ga82a87f60a63faa72e95feea2d1af82a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the status of a Egress(MM2S) BD.  <a href="#ga82a87f60a63faa72e95feea2d1af82a6">More...</a><br/></td></tr>
<tr class="separator:ga82a87f60a63faa72e95feea2d1af82a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga659947c1fbe19d3ca1f0415af9850c15"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga659947c1fbe19d3ca1f0415af9850c15">XMcdma_TxBdHwCompleted</a>(BdPtr)</td></tr>
<tr class="memdesc:ga659947c1fbe19d3ca1f0415af9850c15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a Egress(MM2S) BD has completed in hardware.  <a href="#ga659947c1fbe19d3ca1f0415af9850c15">More...</a><br/></td></tr>
<tr class="separator:ga659947c1fbe19d3ca1f0415af9850c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3801a964c4a8acafc826d83fb54dcfc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gac3801a964c4a8acafc826d83fb54dcfc">XMcDma_TxBdGetActualLength</a>(BdPtr, LengthMask)</td></tr>
<tr class="memdesc:gac3801a964c4a8acafc826d83fb54dcfc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the actual transfer length of a Egress(MM2S) BD.  <a href="#gac3801a964c4a8acafc826d83fb54dcfc">More...</a><br/></td></tr>
<tr class="separator:gac3801a964c4a8acafc826d83fb54dcfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe1a5cd6c2561c807261f7c9b8c4cd34"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gabe1a5cd6c2561c807261f7c9b8c4cd34">XMcDma_BdGetCtrl</a>(BdPtr)</td></tr>
<tr class="memdesc:gabe1a5cd6c2561c807261f7c9b8c4cd34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the control bits of a BD.  <a href="#gabe1a5cd6c2561c807261f7c9b8c4cd34">More...</a><br/></td></tr>
<tr class="separator:gabe1a5cd6c2561c807261f7c9b8c4cd34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66f21c01fc70df953e940e61d6fc133e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga66f21c01fc70df953e940e61d6fc133e">XMcdma_BdChainNextBd</a>(Chan, BdPtr)</td></tr>
<tr class="memdesc:ga66f21c01fc70df953e940e61d6fc133e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the next BD in the Chain.  <a href="#ga66f21c01fc70df953e940e61d6fc133e">More...</a><br/></td></tr>
<tr class="separator:ga66f21c01fc70df953e940e61d6fc133e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9bdd15b4246b9b6985c88fcac07ce432"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga9bdd15b4246b9b6985c88fcac07ce432">XMcdma_BdChainPrevBd</a>(Chan, BdPtr)</td></tr>
<tr class="memdesc:ga9bdd15b4246b9b6985c88fcac07ce432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the previous BD in the Chain.  <a href="#ga9bdd15b4246b9b6985c88fcac07ce432">More...</a><br/></td></tr>
<tr class="separator:ga9bdd15b4246b9b6985c88fcac07ce432"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5fb0bfe1188cf10ace3f6788cb19f4d7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga5fb0bfe1188cf10ace3f6788cb19f4d7">XMcdma_HwIsStarted</a>(Chan)</td></tr>
<tr class="memdesc:ga5fb0bfe1188cf10ace3f6788cb19f4d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a DMA is started, meaning the channel is not halted.  <a href="#ga5fb0bfe1188cf10ace3f6788cb19f4d7">More...</a><br/></td></tr>
<tr class="separator:ga5fb0bfe1188cf10ace3f6788cb19f4d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56bedd6346bb7deaefc4c46c98e02a8b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga56bedd6346bb7deaefc4c46c98e02a8b">XMcdma_ChanHwIsStarted</a>(Chan, Chan_id)</td></tr>
<tr class="memdesc:ga56bedd6346bb7deaefc4c46c98e02a8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a DMA channel is started, meaning the channel is not halted.  <a href="#ga56bedd6346bb7deaefc4c46c98e02a8b">More...</a><br/></td></tr>
<tr class="separator:ga56bedd6346bb7deaefc4c46c98e02a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8b57c02f29151129d0c5873d26bbda2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gac8b57c02f29151129d0c5873d26bbda2">XMcDma_BdSetCtrlSideBand</a>(BdPtr, Tid, Tuser)</td></tr>
<tr class="memdesc:gac8b57c02f29151129d0c5873d26bbda2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Tid and Tuser fields of a BD with the user provided values.  <a href="#gac8b57c02f29151129d0c5873d26bbda2">More...</a><br/></td></tr>
<tr class="separator:gac8b57c02f29151129d0c5873d26bbda2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1fdc6a4a27f6bd75aff05334be9060ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga1fdc6a4a27f6bd75aff05334be9060ce">XMcDma_GetBdSbandStats</a>(BdPtr)&#160;&#160;&#160;<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SIDEBAND_STS_OFFSET)</td></tr>
<tr class="memdesc:ga1fdc6a4a27f6bd75aff05334be9060ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the side band status of a BD.  <a href="#ga1fdc6a4a27f6bd75aff05334be9060ce">More...</a><br/></td></tr>
<tr class="separator:ga1fdc6a4a27f6bd75aff05334be9060ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed8f4b77eb238817267116c08caaa857"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaed8f4b77eb238817267116c08caaa857">XMcdma_BdClear</a>(BdPtr)</td></tr>
<tr class="memdesc:gaed8f4b77eb238817267116c08caaa857"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the BD Contents.  <a href="#gaed8f4b77eb238817267116c08caaa857">More...</a><br/></td></tr>
<tr class="separator:gaed8f4b77eb238817267116c08caaa857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b48d2e373be7642bbd1f48e7342f86e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga1b48d2e373be7642bbd1f48e7342f86e">XMcdma_BdSetSwId</a>(BdPtr, Id)&#160;&#160;&#160;(<a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>((BdPtr), XMCDMA_BD_SW_ID_OFFSET, (UINTPTR)(Id)))</td></tr>
<tr class="memdesc:ga1b48d2e373be7642bbd1f48e7342f86e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Sw ID field of the given BD.  <a href="#ga1b48d2e373be7642bbd1f48e7342f86e">More...</a><br/></td></tr>
<tr class="separator:ga1b48d2e373be7642bbd1f48e7342f86e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea4638d00f6620f0a87e1816b53beaa6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaea4638d00f6620f0a87e1816b53beaa6">XMcdma_BdGetSwId</a>(BdPtr)&#160;&#160;&#160;(<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SW_ID_OFFSET))</td></tr>
<tr class="memdesc:gaea4638d00f6620f0a87e1816b53beaa6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the Sw ID field of the given BD previously set with XMcdma_BdSetSwId.  <a href="#gaea4638d00f6620f0a87e1816b53beaa6">More...</a><br/></td></tr>
<tr class="separator:gaea4638d00f6620f0a87e1816b53beaa6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga2a24cc98e345bcce378cc5a48950b951"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga2a24cc98e345bcce378cc5a48950b951">XMcdma_Handler</a> { <br/>
&#160;&#160;<a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a532392b7f692703eea36f4fed4d46d9f">XMCDMA_TX_HANDLER_DONE</a>, 
<a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951ab707f173a6335499f6d605cf9edc7f36">XMCDMA_TX_HANDLER_ERROR</a>, 
<a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a244c802f636b3c93951e43c84b328cb9">XMCDMA_HANDLER_DONE</a>, 
<a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a03514ef8324cf6f58346bca7543d35f0">XMCDMA_HANDLER_ERROR</a>, 
<br/>
&#160;&#160;<a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a9c1e4b4d6db67e31956c60415f142283">XMCDMA_HANDLER_PKTDROP</a>
<br/>
 }</td></tr>
<tr class="separator:ga2a24cc98e345bcce378cc5a48950b951"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23f0ed35a8741b8700d3b70ce712e1a8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga23f0ed35a8741b8700d3b70ce712e1a8">XMcdma_ChanHandler</a> { <a class="el" href="group__mcdma.html#gga23f0ed35a8741b8700d3b70ce712e1a8aa5ab43f15fe512c92b5d17ea462b0dd9">XMCDMA_CHAN_HANDLER_DONE</a>, 
<a class="el" href="group__mcdma.html#gga23f0ed35a8741b8700d3b70ce712e1a8a6451b15674b08fc9152420efaed81310">XMCDMA_CHAN_HANDLER_ERROR</a>, 
<a class="el" href="group__mcdma.html#gga23f0ed35a8741b8700d3b70ce712e1a8a3f4ea7cef6b890fcbfa5a19197cc6eb5">XMCDMA_CHAN_HANDLER_PKTDROP</a>
 }</td></tr>
<tr class="separator:ga23f0ed35a8741b8700d3b70ce712e1a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaded8280c89d619daddc45d217358a319"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaded8280c89d619daddc45d217358a319">XMcDma_CfgInitialize</a> (XMcdma *InstancePtr, XMcdma_Config *CfgPtr)</td></tr>
<tr class="memdesc:gaded8280c89d619daddc45d217358a319"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes an MCDMA core.  <a href="#gaded8280c89d619daddc45d217358a319">More...</a><br/></td></tr>
<tr class="separator:gaded8280c89d619daddc45d217358a319"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac48d708f62efed396346f941c139bd3d"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gac48d708f62efed396346f941c139bd3d">XMcDma_Initialize</a> (XMcdma *InstancePtr, XMcdma_Config *CfgPtr)</td></tr>
<tr class="memdesc:gac48d708f62efed396346f941c139bd3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes an MCDMA core.  <a href="#gac48d708f62efed396346f941c139bd3d">More...</a><br/></td></tr>
<tr class="separator:gac48d708f62efed396346f941c139bd3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e8a276d4f1cc7a87afbc4ee1b2e43e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga9e8a276d4f1cc7a87afbc4ee1b2e43e8">XMcDma_Reset</a> (XMcdma *InstancePtr)</td></tr>
<tr class="memdesc:ga9e8a276d4f1cc7a87afbc4ee1b2e43e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function resets the MCDMA core.  <a href="#ga9e8a276d4f1cc7a87afbc4ee1b2e43e8">More...</a><br/></td></tr>
<tr class="separator:ga9e8a276d4f1cc7a87afbc4ee1b2e43e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55549abc13232f33a4c689b7e490d7ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga55549abc13232f33a4c689b7e490d7ed">XMcdma_SetSGAWCache</a> (XMcdma *InstancePtr, u8 Value)</td></tr>
<tr class="memdesc:ga55549abc13232f33a4c689b7e490d7ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the AWCACHE field of the SG interface With the user specified value.  <a href="#ga55549abc13232f33a4c689b7e490d7ed">More...</a><br/></td></tr>
<tr class="separator:ga55549abc13232f33a4c689b7e490d7ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1fc07ce6abf4692ce13eecfde7bdc25e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga1fc07ce6abf4692ce13eecfde7bdc25e">XMcdma_SetSGARCache</a> (XMcdma *InstancePtr, u8 Value)</td></tr>
<tr class="memdesc:ga1fc07ce6abf4692ce13eecfde7bdc25e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the ARCACHE field of the SG interface With the user specified value.  <a href="#ga1fc07ce6abf4692ce13eecfde7bdc25e">More...</a><br/></td></tr>
<tr class="separator:ga1fc07ce6abf4692ce13eecfde7bdc25e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33076a9ec260fdf36a3bcb8517378e4a"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga33076a9ec260fdf36a3bcb8517378e4a">XMcdma_ResetIsDone</a> (XMcdma *InstancePtr)</td></tr>
<tr class="memdesc:ga33076a9ec260fdf36a3bcb8517378e4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether reset is done.  <a href="#ga33076a9ec260fdf36a3bcb8517378e4a">More...</a><br/></td></tr>
<tr class="separator:ga33076a9ec260fdf36a3bcb8517378e4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cb2b75af04c76888a93ad5b1063cbdc"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga1cb2b75af04c76888a93ad5b1063cbdc">XMcdma_Start</a> (XMcdma_ChanCtrl *Chan)</td></tr>
<tr class="memdesc:ga1cb2b75af04c76888a93ad5b1063cbdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the DMA engine.  <a href="#ga1cb2b75af04c76888a93ad5b1063cbdc">More...</a><br/></td></tr>
<tr class="separator:ga1cb2b75af04c76888a93ad5b1063cbdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga792b8ea5ccc876d81e0b3ca0bb3a028b"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga792b8ea5ccc876d81e0b3ca0bb3a028b">XMcdma_ChanHwStop</a> (XMcdma_ChanCtrl *Chan)</td></tr>
<tr class="memdesc:ga792b8ea5ccc876d81e0b3ca0bb3a028b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops the DMA engine.  <a href="#ga792b8ea5ccc876d81e0b3ca0bb3a028b">More...</a><br/></td></tr>
<tr class="separator:ga792b8ea5ccc876d81e0b3ca0bb3a028b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91a72a8c74cd2137ff49c83d2e275a93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga91a72a8c74cd2137ff49c83d2e275a93">XMcdma_EnableCh</a> (XMcdma_ChanCtrl *Chan)</td></tr>
<tr class="memdesc:ga91a72a8c74cd2137ff49c83d2e275a93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables a particular channel.  <a href="#ga91a72a8c74cd2137ff49c83d2e275a93">More...</a><br/></td></tr>
<tr class="separator:ga91a72a8c74cd2137ff49c83d2e275a93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7eceaf95d0f2c23ac4e4c5ce0fdf9920"><td class="memItemLeft" align="right" valign="top">u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga7eceaf95d0f2c23ac4e4c5ce0fdf9920">XMcdma_GetChanServiced</a> (XMcdma *InstancePtr)</td></tr>
<tr class="memdesc:ga7eceaf95d0f2c23ac4e4c5ce0fdf9920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last serviced s2mm channel number.  <a href="#ga7eceaf95d0f2c23ac4e4c5ce0fdf9920">More...</a><br/></td></tr>
<tr class="separator:ga7eceaf95d0f2c23ac4e4c5ce0fdf9920"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf5bbe52004ff30b9cab2d3a1bec4c1fa"><td class="memItemLeft" align="right" valign="top">u16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaf5bbe52004ff30b9cab2d3a1bec4c1fa">XMcdma_GetTxChanServiced</a> (XMcdma *InstancePtr)</td></tr>
<tr class="memdesc:gaf5bbe52004ff30b9cab2d3a1bec4c1fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last serviced mm2s channel number.  <a href="#gaf5bbe52004ff30b9cab2d3a1bec4c1fa">More...</a><br/></td></tr>
<tr class="separator:gaf5bbe52004ff30b9cab2d3a1bec4c1fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabfe362aabed422da639b3fa8f8d8371b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gabfe362aabed422da639b3fa8f8d8371b">XMcdma_DumpChanRegs</a> (XMcdma_ChanCtrl *Chan)</td></tr>
<tr class="memdesc:gabfe362aabed422da639b3fa8f8d8371b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the registers for a channel.  <a href="#gabfe362aabed422da639b3fa8f8d8371b">More...</a><br/></td></tr>
<tr class="separator:gabfe362aabed422da639b3fa8f8d8371b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34e74ad4836bc9c82d3288ccc41516ae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga34e74ad4836bc9c82d3288ccc41516ae">XMcdma_UpdateChanCDesc</a> (XMcdma_ChanCtrl *Chan)</td></tr>
<tr class="memdesc:ga34e74ad4836bc9c82d3288ccc41516ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update Current Descriptor for the MCDMA Channel.  <a href="#ga34e74ad4836bc9c82d3288ccc41516ae">More...</a><br/></td></tr>
<tr class="separator:ga34e74ad4836bc9c82d3288ccc41516ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d613e34ee855d64d50a462e272bcf38"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga7d613e34ee855d64d50a462e272bcf38">XMcdma_UpdateChanTDesc</a> (XMcdma_ChanCtrl *Chan)</td></tr>
<tr class="memdesc:ga7d613e34ee855d64d50a462e272bcf38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update Tail Desc for the Channel.  <a href="#ga7d613e34ee855d64d50a462e272bcf38">More...</a><br/></td></tr>
<tr class="separator:ga7d613e34ee855d64d50a462e272bcf38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5cb928c2177632d162e1f83b9df818a4"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga5cb928c2177632d162e1f83b9df818a4">XMcDma_ChanBdCreate</a> (XMcdma_ChanCtrl *Chan, UINTPTR Addr, u32 Count)</td></tr>
<tr class="memdesc:ga5cb928c2177632d162e1f83b9df818a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Using a memory segment allocated by the caller, This function creates and setup the BD Chain for the MCDMA Channel.  <a href="#ga5cb928c2177632d162e1f83b9df818a4">More...</a><br/></td></tr>
<tr class="separator:ga5cb928c2177632d162e1f83b9df818a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga043e7eb1811040fdbdafe288cd4ac5ea"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga043e7eb1811040fdbdafe288cd4ac5ea">XMcDma_ChanSubmit</a> (XMcdma_ChanCtrl *Chan, UINTPTR BufAddr, u32 len)</td></tr>
<tr class="memdesc:ga043e7eb1811040fdbdafe288cd4ac5ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function Populates the BD Chain with the required buffer address and length fields.  <a href="#ga043e7eb1811040fdbdafe288cd4ac5ea">More...</a><br/></td></tr>
<tr class="separator:ga043e7eb1811040fdbdafe288cd4ac5ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea3a22718a28af2430b0508f213b96d1"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaea3a22718a28af2430b0508f213b96d1">XMcDma_Chan_Sideband_Submit</a> (XMcdma_ChanCtrl *ChanPtr, UINTPTR BufAddr, u32 Len, u32 *AppPtr, u16 Tuser, u16 Tid)</td></tr>
<tr class="memdesc:gaea3a22718a28af2430b0508f213b96d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function populates the BD Chain with the required buffer address, length APP(user application), TUSER and TID fields.  <a href="#gaea3a22718a28af2430b0508f213b96d1">More...</a><br/></td></tr>
<tr class="separator:gaea3a22718a28af2430b0508f213b96d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadccaaa44cfbb7f8c45790050fa14a9aa"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gadccaaa44cfbb7f8c45790050fa14a9aa">XMcDma_ChanToHw</a> (XMcdma_ChanCtrl *Chan)</td></tr>
<tr class="memdesc:gadccaaa44cfbb7f8c45790050fa14a9aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function triggers/Starts the h/w by programming the Current and Tail Descriptors and enabling the particular channel.  <a href="#gadccaaa44cfbb7f8c45790050fa14a9aa">More...</a><br/></td></tr>
<tr class="separator:gadccaaa44cfbb7f8c45790050fa14a9aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaab94e04161d34aae300d76dd51948117"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaab94e04161d34aae300d76dd51948117">XMcdma_BdChainFromHW</a> (XMcdma_ChanCtrl *Chan, u32 BdLimit, XMcdma_Bd **BdSetPtr)</td></tr>
<tr class="memdesc:gaab94e04161d34aae300d76dd51948117"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a set of BD(s) that have been processed by hardware.  <a href="#gaab94e04161d34aae300d76dd51948117">More...</a><br/></td></tr>
<tr class="separator:gaab94e04161d34aae300d76dd51948117"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac503b02c1b13e908931f84facd8eae44"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gac503b02c1b13e908931f84facd8eae44">XMcdma_BdChainFree</a> (XMcdma_ChanCtrl *Chan, int BdCount, XMcdma_Bd *BdSetPtr)</td></tr>
<tr class="memdesc:gac503b02c1b13e908931f84facd8eae44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a set of BDs that had been previously retrieved with <a class="el" href="group__mcdma.html#gaab94e04161d34aae300d76dd51948117" title="Returns a set of BD(s) that have been processed by hardware. ">XMcdma_BdChainFromHW()</a>.  <a href="#gac503b02c1b13e908931f84facd8eae44">More...</a><br/></td></tr>
<tr class="separator:gac503b02c1b13e908931f84facd8eae44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2a2cc690650d389e820be2aa8a078024"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga2a2cc690650d389e820be2aa8a078024">XMcdma_BdSetBufAddr</a> (XMcdma_Bd *BdPtr, UINTPTR Addr)</td></tr>
<tr class="memdesc:ga2a2cc690650d389e820be2aa8a078024"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Buffer descriptor buffer address field.  <a href="#ga2a2cc690650d389e820be2aa8a078024">More...</a><br/></td></tr>
<tr class="separator:ga2a2cc690650d389e820be2aa8a078024"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2388e0cd3c27b0c675f308b74a0e6b21"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga2388e0cd3c27b0c675f308b74a0e6b21">XMcDma_BdSetCtrl</a> (XMcdma_Bd *BdPtr, u32 Data)</td></tr>
<tr class="memdesc:ga2388e0cd3c27b0c675f308b74a0e6b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the control bits for a BD.  <a href="#ga2388e0cd3c27b0c675f308b74a0e6b21">More...</a><br/></td></tr>
<tr class="separator:ga2388e0cd3c27b0c675f308b74a0e6b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga357821499f1231555343dc309c59c67a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga357821499f1231555343dc309c59c67a">XMcDma_BdSetAppWord</a> (XMcdma_Bd *BdPtr, int Offset, u32 Word)</td></tr>
<tr class="memdesc:ga357821499f1231555343dc309c59c67a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the APP word at the specified APP word offset for a BD.  <a href="#ga357821499f1231555343dc309c59c67a">More...</a><br/></td></tr>
<tr class="separator:ga357821499f1231555343dc309c59c67a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9295d5a6e89fe6a6471371191078b7fc"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga9295d5a6e89fe6a6471371191078b7fc">XMcDma_BdGetAppWord</a> (XMcdma_Bd *BdPtr, int Offset, int *Valid)</td></tr>
<tr class="memdesc:ga9295d5a6e89fe6a6471371191078b7fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the APP word at the specified APP word offset for a BD.  <a href="#ga9295d5a6e89fe6a6471371191078b7fc">More...</a><br/></td></tr>
<tr class="separator:ga9295d5a6e89fe6a6471371191078b7fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5a6f8e287e29edd291257dea37570c94"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga5a6f8e287e29edd291257dea37570c94">XMcdma_SetChanCoalesceDelay</a> (XMcdma_ChanCtrl *Chan, u32 IrqCoalesce, u32 IrqDelay)</td></tr>
<tr class="memdesc:ga5a6f8e287e29edd291257dea37570c94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set interrupt coalescing parameters for a particular channel.  <a href="#ga5a6f8e287e29edd291257dea37570c94">More...</a><br/></td></tr>
<tr class="separator:ga5a6f8e287e29edd291257dea37570c94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20e854946069868d98b43a144f282093"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga20e854946069868d98b43a144f282093">XMcDma_DumpBd</a> (XMcdma_Bd *BdPtr)</td></tr>
<tr class="memdesc:ga20e854946069868d98b43a144f282093"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the fields of a BD.  <a href="#ga20e854946069868d98b43a144f282093">More...</a><br/></td></tr>
<tr class="separator:ga20e854946069868d98b43a144f282093"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaabd1faa395039ac6938d36ba10092b26"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaabd1faa395039ac6938d36ba10092b26">XMcdma_ChanIntrHandler</a> (void *Instance)</td></tr>
<tr class="memdesc:gaabd1faa395039ac6938d36ba10092b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the Per Channel interrupt handler for the MCDMA core.  <a href="#gaabd1faa395039ac6938d36ba10092b26">More...</a><br/></td></tr>
<tr class="separator:gaabd1faa395039ac6938d36ba10092b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79e33f0517b2d20391e3f9889820383c"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga79e33f0517b2d20391e3f9889820383c">XMcdma_ChanSetCallBack</a> (XMcdma_ChanCtrl *Chan, <a class="el" href="group__mcdma.html#ga23f0ed35a8741b8700d3b70ce712e1a8">XMcdma_ChanHandler</a> HandlerType, void *CallBackFunc, void *CallBackRef)</td></tr>
<tr class="memdesc:ga79e33f0517b2d20391e3f9889820383c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This routine installs an asynchronous callback function for the given HandlerType.  <a href="#ga79e33f0517b2d20391e3f9889820383c">More...</a><br/></td></tr>
<tr class="separator:ga79e33f0517b2d20391e3f9889820383c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0611fd6496b02ad71158a7e9440cf970"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga0611fd6496b02ad71158a7e9440cf970">XMcdma_IntrHandler</a> (void *Instance)</td></tr>
<tr class="memdesc:ga0611fd6496b02ad71158a7e9440cf970"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the S2MM(RX) interrupt handler for the MCDMA core.  <a href="#ga0611fd6496b02ad71158a7e9440cf970">More...</a><br/></td></tr>
<tr class="separator:ga0611fd6496b02ad71158a7e9440cf970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5b50b1e3a32412a7fdfd98de22e9f2a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga5b50b1e3a32412a7fdfd98de22e9f2a8">XMcdma_TxIntrHandler</a> (void *Instance)</td></tr>
<tr class="memdesc:ga5b50b1e3a32412a7fdfd98de22e9f2a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the MM2S interrupt handler for the MCDMA core.  <a href="#ga5b50b1e3a32412a7fdfd98de22e9f2a8">More...</a><br/></td></tr>
<tr class="separator:ga5b50b1e3a32412a7fdfd98de22e9f2a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga324c2be8905eca72caa7111f0ef6b827"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga324c2be8905eca72caa7111f0ef6b827">XMcdma_SetCallBack</a> (XMcdma *InstancePtr, <a class="el" href="group__mcdma.html#ga2a24cc98e345bcce378cc5a48950b951">XMcdma_Handler</a> HandlerType, void *CallBackFunc, void *CallBackRef)</td></tr>
<tr class="memdesc:ga324c2be8905eca72caa7111f0ef6b827"><td class="mdescLeft">&#160;</td><td class="mdescRight">This routine installs an asynchronous callback function for the given HandlerType.  <a href="#ga324c2be8905eca72caa7111f0ef6b827">More...</a><br/></td></tr>
<tr class="separator:ga324c2be8905eca72caa7111f0ef6b827"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed0e1bd2bfc15f2e2fc1271eef89ca07"><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#gaed0e1bd2bfc15f2e2fc1271eef89ca07">XMcdma_SelfTest</a> (XMcdma *InstancePtr)</td></tr>
<tr class="memdesc:gaed0e1bd2bfc15f2e2fc1271eef89ca07"><td class="mdescLeft">&#160;</td><td class="mdescRight">This file contains a diagnostic self-test function for the MCDMA driver.  <a href="#gaed0e1bd2bfc15f2e2fc1271eef89ca07">More...</a><br/></td></tr>
<tr class="separator:gaed0e1bd2bfc15f2e2fc1271eef89ca07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62a895328daf1573051668904d39570e"><td class="memItemLeft" align="right" valign="top">XMcdma_Config *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga62a895328daf1573051668904d39570e">XMcdma_LookupConfig</a> (u16 DeviceId)</td></tr>
<tr class="memdesc:ga62a895328daf1573051668904d39570e"><td class="mdescLeft">&#160;</td><td class="mdescRight">XMcdma_LookupConfig returns a reference to an XMcdma_Config structure based on the unique device id, <em>DeviceId</em>.  <a href="#ga62a895328daf1573051668904d39570e">More...</a><br/></td></tr>
<tr class="separator:ga62a895328daf1573051668904d39570e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69935624297a5e17bcc0d766b12c8c7b"><td class="memItemLeft" align="right" valign="top">XMcdma_Config *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mcdma.html#ga69935624297a5e17bcc0d766b12c8c7b">XMcdma_LookupConfigBaseAddr</a> (UINTPTR Baseaddr)</td></tr>
<tr class="memdesc:ga69935624297a5e17bcc0d766b12c8c7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">XMcdma_LookupConfigBaseAddr returns a reference to an XMcdma_Config structure based on base address.  <a href="#ga69935624297a5e17bcc0d766b12c8c7b">More...</a><br/></td></tr>
<tr class="separator:ga69935624297a5e17bcc0d766b12c8c7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga66f21c01fc70df953e940e61d6fc133e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdChainNextBd</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((UINTPTR)(BdPtr) &gt;= (Chan)-&gt;LastBdAddr) ?     \</div>
<div class="line">         (UINTPTR)(Chan)-&gt;FirstBdAddr : \</div>
<div class="line">         (UINTPTR)((UINTPTR)(BdPtr) + (Chan)-&gt;Separation))</div>
</div><!-- fragment -->
<p>Return the next BD in the Chain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the Channel BD Chain to operate on. </td></tr>
    <tr><td class="paramname">BdPtr</td><td>is the current BD.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The next BD in the Chain relative to the BdPtr parameter.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma_Bd <em>XMcdma_BdChainNextBd(XMcdma_ChanCtrl</em> Chan, XMcdma_Bd *BdPtr) </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gac503b02c1b13e908931f84facd8eae44">XMcdma_BdChainFree()</a>, <a class="el" href="group__mcdma.html#gaab94e04161d34aae300d76dd51948117">XMcdma_BdChainFromHW()</a>, <a class="el" href="group__mcdma.html#gaea3a22718a28af2430b0508f213b96d1">XMcDma_Chan_Sideband_Submit()</a>, and <a class="el" href="group__mcdma.html#ga043e7eb1811040fdbdafe288cd4ac5ea">XMcDma_ChanSubmit()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9bdd15b4246b9b6985c88fcac07ce432"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdChainPrevBd</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(((UINTPTR)(BdPtr) &lt;= (Chan)-&gt;FirstBdAddr) ?                    \</div>
<div class="line">         (XMcdma_Bd *)(Chan)-&gt;LastBdAddr :                      \</div>
<div class="line">         (XMcdma_Bd *)((UINTPTR)(BdPtr) - (Chan)-&gt;Separation))</div>
</div><!-- fragment -->
<p>Return the previous BD in the Chain. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA channel to operate on. </td></tr>
    <tr><td class="paramname">BdPtr</td><td>is the current BD.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The previous BD in the Chain relative to the BdPtr parameter.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma_Bd <em>XMcdma_BdChainPrevBd(XMcdma_ChanCtrl</em> Chan, XMcdma_Bd *BdPtr) </dd></dl>

</div>
</div>
<a class="anchor" id="gaed8f4b77eb238817267116c08caaa857"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdClear</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">memset((<span class="keywordtype">void</span> *)(((UINTPTR)(BdPtr)) + XMCDMA_BD_START_CLEAR), 0, \</div>
<div class="line">               XMCDMA_BD_BYTES_TO_CLEAR)</div>
</div><!-- fragment -->
<p>Clears the BD Contents. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: void <a class="el" href="group__mcdma.html#gaed8f4b77eb238817267116c08caaa857" title="Clears the BD Contents. ">XMcdma_BdClear(XMcdma_Bd* BdPtr)</a> </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gac503b02c1b13e908931f84facd8eae44">XMcdma_BdChainFree()</a>, <a class="el" href="group__mcdma.html#gaea3a22718a28af2430b0508f213b96d1">XMcDma_Chan_Sideband_Submit()</a>, and <a class="el" href="group__mcdma.html#ga043e7eb1811040fdbdafe288cd4ac5ea">XMcDma_ChanSubmit()</a>.</p>

</div>
</div>
<a class="anchor" id="ga884435b89a533b2195af16a29d41c5d2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcDma_BdGetActualLength</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">LengthMask&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_STS_OFFSET) &amp; \</div>
<div class="line">         LengthMask)</div>
<div class="ttc" id="group__mcdma_html_ga4a9c2fa82ee0b3c7518b7b9125a447e0"><div class="ttname"><a href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a></div><div class="ttdeci">#define XMcdma_BdRead(BaseAddress, Offset)</div><div class="ttdoc">Read the given Buffer Descriptor word. </div><div class="ttdef"><b>Definition:</b> xmcdma_bd.h:66</div></div>
</div><!-- fragment -->
<p>Get the actual transfer length of a Ingress (S2MM)BD. </p>
<p>The BD has completed in hw.</p>
<p>This function may not work if the BD is in cached memory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to check on </td></tr>
    <tr><td class="paramname">LengthMask</td><td>is the Maximum Transfer Length.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: int <a class="el" href="group__mcdma.html#ga884435b89a533b2195af16a29d41c5d2" title="Get the actual transfer length of a Ingress (S2MM)BD. ">XMcDma_BdGetActualLength(XMcdma_Bd* BdPtr, u32 LengthMask)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gabe1a5cd6c2561c807261f7c9b8c4cd34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcDma_BdGetCtrl</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_CTRL_OFFSET)  \</div>
<div class="line">         &amp; XMCDMA_BD_CTRL_ALL_MASK)</div>
<div class="ttc" id="group__mcdma_html_ga4a9c2fa82ee0b3c7518b7b9125a447e0"><div class="ttname"><a href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a></div><div class="ttdeci">#define XMcdma_BdRead(BaseAddress, Offset)</div><div class="ttdoc">Read the given Buffer Descriptor word. </div><div class="ttdef"><b>Definition:</b> xmcdma_bd.h:66</div></div>
</div><!-- fragment -->
<p>Gets the control bits of a BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>control bits of a BD.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u32 <a class="el" href="group__mcdma.html#gabe1a5cd6c2561c807261f7c9b8c4cd34" title="Gets the control bits of a BD. ">XMcDma_BdGetCtrl(XMCDMA_Bd* BdPtr)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga85e21c6be33fd36ffb9e559f53dfa2b4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcDma_BdGetSts</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_STS_OFFSET)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the status of a Ingress(S2MM) BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Use XMDMA_BD_STS_*** values defined in xmdma_hw.h to interpret the returned value</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u32 <a class="el" href="group__mcdma.html#ga85e21c6be33fd36ffb9e559f53dfa2b4" title="Retrieve the status of a Ingress(S2MM) BD. ">XMcDma_BdGetSts(XMcdma_Bd* BdPtr)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaea4638d00f6620f0a87e1816b53beaa6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdGetSwId</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td>&#160;&#160;&#160;(<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SW_ID_OFFSET))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the Sw ID field of the given BD previously set with XMcdma_BdSetSwId. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>BD Sw identifier</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u32 <a class="el" href="group__mcdma.html#gaea4638d00f6620f0a87e1816b53beaa6" title="Retrieve the Sw ID field of the given BD previously set with XMcdma_BdSetSwId. ">XMcdma_BdGetSwId(XMcdma_Bd* BdPtr)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga369b7454a39ba87d032c2f40394360f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdHwCompleted</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_STS_OFFSET) &amp; \</div>
<div class="line">         XMCDMA_BD_STS_COMPLETE_MASK)</div>
<div class="ttc" id="group__mcdma_html_ga4a9c2fa82ee0b3c7518b7b9125a447e0"><div class="ttname"><a href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a></div><div class="ttdeci">#define XMcdma_BdRead(BaseAddress, Offset)</div><div class="ttdoc">Read the given Buffer Descriptor word. </div><div class="ttdef"><b>Definition:</b> xmcdma_bd.h:66</div></div>
</div><!-- fragment -->
<p>Check whether a Ingress(S2MM) BD has completed in hardware. </p>
<p>This BD has been submitted to hardware. The application can use this function To poll for the Completion of the BD.</p>
<p>This function may not work if the BD is in cached memory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to check on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if not complete</li>
<li>XMCDMA_BD_STS_COMPLETE_MASK if completed, may contain XMDMA_BD_STS_*_ERR_MASK bits.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: int <a class="el" href="group__mcdma.html#ga369b7454a39ba87d032c2f40394360f8" title="Check whether a Ingress(S2MM) BD has completed in hardware. ">XMcdma_BdHwCompleted(XMcdma_Bd* BdPtr)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga4a9c2fa82ee0b3c7518b7b9125a447e0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdRead</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BaseAddress, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Offset&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(*(u32 *)(((UINTPTR)(void *)(BaseAddress)) + (u32)(Offset)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read the given Buffer Descriptor word. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BaseAddress</td><td>is the base address of the BD to read </td></tr>
    <tr><td class="paramname">Offset</td><td>is the word offset to be read</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The 32-bit value of the field</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u32 <a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0" title="Read the given Buffer Descriptor word. ">XMcdma_BdRead(u32 BaseAddress, u32 Offset)</a> </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaab94e04161d34aae300d76dd51948117">XMcdma_BdChainFromHW()</a>, <a class="el" href="group__mcdma.html#ga9295d5a6e89fe6a6471371191078b7fc">XMcDma_BdGetAppWord()</a>, <a class="el" href="group__mcdma.html#ga357821499f1231555343dc309c59c67a">XMcDma_BdSetAppWord()</a>, <a class="el" href="group__mcdma.html#ga2a2cc690650d389e820be2aa8a078024">XMcdma_BdSetBufAddr()</a>, <a class="el" href="group__mcdma.html#ga2388e0cd3c27b0c675f308b74a0e6b21">XMcDma_BdSetCtrl()</a>, and <a class="el" href="group__mcdma.html#ga20e854946069868d98b43a144f282093">XMcDma_DumpBd()</a>.</p>

</div>
</div>
<a class="anchor" id="gaeea700e622c21664095d4015fdb3c182"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdRead64</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BaseAddress, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Offset&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(*(u64 *)(((UINTPTR)(void *)(BaseAddress)) + (u32)(Offset)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read the given Buffer Descriptor word. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BaseAddress</td><td>is the base address of the BD to read </td></tr>
    <tr><td class="paramname">Offset</td><td>is the word offset to be read</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The 64-bit value of the field</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u64 <a class="el" href="group__mcdma.html#gaeea700e622c21664095d4015fdb3c182" title="Read the given Buffer Descriptor word. ">XMcdma_BdRead64(u64 BaseAddress, u32 Offset)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gac8b57c02f29151129d0c5873d26bbda2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcDma_BdSetCtrlSideBand</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Tid, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Tuser&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>((BdPtr), XMCDMA_BD_CTRL_SBAND_OFFSET, \</div>
<div class="line">                       Tid &lt;&lt; XMCDMA_BD_CTRL_SBAND_SHIFT | Tuser)</div>
<div class="ttc" id="group__mcdma_html_ga2e9ebef9ab28ab4e942a1c6415cebc08"><div class="ttname"><a href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a></div><div class="ttdeci">#define XMcdma_BdWrite(BaseAddress, Offset, Data)</div><div class="ttdoc">Write the given Buffer Descriptor word. </div><div class="ttdef"><b>Definition:</b> xmcdma_bd.h:103</div></div>
</div><!-- fragment -->
<p>Set the Tid and Tuser fields of a BD with the user provided values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on. </td></tr>
    <tr><td class="paramname">Tid</td><td>is Tid value to be written in the Bd field. </td></tr>
    <tr><td class="paramname">Tuser</td><td>is Tuser value to be written in the Bd field.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u32 <a class="el" href="group__mcdma.html#gac8b57c02f29151129d0c5873d26bbda2" title="Set the Tid and Tuser fields of a BD with the user provided values. ">XMcDma_BdSetCtrlSideBand(XMcdma_Bd* BdPtr, u8 Tid, u8 Tuser)</a> </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaea3a22718a28af2430b0508f213b96d1">XMcDma_Chan_Sideband_Submit()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1b48d2e373be7642bbd1f48e7342f86e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdSetSwId</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Id&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(<a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>((BdPtr), XMCDMA_BD_SW_ID_OFFSET, (UINTPTR)(Id)))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the Sw ID field of the given BD. </p>
<p>The ID is an arbitrary piece of data the application can associate with a specific BD.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on </td></tr>
    <tr><td class="paramname">Id</td><td>is a 32 bit quantity to set in the BD</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: void <a class="el" href="group__mcdma.html#ga1b48d2e373be7642bbd1f48e7342f86e" title="Set the Sw ID field of the given BD. ">XMcdma_BdSetSwId(XMcdma_Bd* BdPtr, void Id)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga2e9ebef9ab28ab4e942a1c6415cebc08"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdWrite</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BaseAddress, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Offset, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Data&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(*(u32 *)((UINTPTR)(void *)(BaseAddress) + (u32)(Offset))) = (u32)(Data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write the given Buffer Descriptor word. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BaseAddress</td><td>is the base address of the BD to write </td></tr>
    <tr><td class="paramname">Offset</td><td>is the word offset to be written </td></tr>
    <tr><td class="paramname">Data</td><td>is the 32-bit value to write to the field</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: void <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08" title="Write the given Buffer Descriptor word. ">XMcdma_BdWrite(u32 BaseAddress, u32 RegOffset, u32 Data)</a> </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#ga357821499f1231555343dc309c59c67a">XMcDma_BdSetAppWord()</a>, <a class="el" href="group__mcdma.html#ga2a2cc690650d389e820be2aa8a078024">XMcdma_BdSetBufAddr()</a>, <a class="el" href="group__mcdma.html#ga2388e0cd3c27b0c675f308b74a0e6b21">XMcDma_BdSetCtrl()</a>, <a class="el" href="group__mcdma.html#gaea3a22718a28af2430b0508f213b96d1">XMcDma_Chan_Sideband_Submit()</a>, <a class="el" href="group__mcdma.html#ga5cb928c2177632d162e1f83b9df818a4">XMcDma_ChanBdCreate()</a>, and <a class="el" href="group__mcdma.html#ga043e7eb1811040fdbdafe288cd4ac5ea">XMcDma_ChanSubmit()</a>.</p>

</div>
</div>
<a class="anchor" id="gac1edd764edccb7e6c240eed49bd073ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_BdWrite64</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BaseAddress, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Offset, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Data&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(*(u64 *)((UINTPTR)(void *)(BaseAddress) + (u32)(Offset))) = (u64)(Data)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write the given Buffer Descriptor double word. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BaseAddress</td><td>is the base address of the BD to write </td></tr>
    <tr><td class="paramname">Offset</td><td>is the word offset to be written </td></tr>
    <tr><td class="paramname">Data</td><td>is the 64-bit value to write to the field</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: void <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08" title="Write the given Buffer Descriptor word. ">XMcdma_BdWrite(u64 BaseAddress, u32 RegOffset, u64 Data)</a> </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#ga2a2cc690650d389e820be2aa8a078024">XMcdma_BdSetBufAddr()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa173f1c898d8325859c852d88debb703"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_ChanAckIrq</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Mask&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMcdma_WriteReg((Chan)-&gt;ChanBase,       \</div>
<div class="line">                        ((Chan-&gt;Chan_id - 1) * XMCDMA_NXTCHAN_OFFSET + XMCDMA_SR_OFFSET) ,\</div>
<div class="line">                        (Mask) &amp; XMCDMA_IRQ_ALL_MASK)</div>
</div><!-- fragment -->
<p>This function acknowledges the interrupts that are specified in Mask. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to Operate on. </td></tr>
    <tr><td class="paramname">Mask</td><td>is the mask for the interrupts to be acknowledge</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaabd1faa395039ac6938d36ba10092b26">XMcdma_ChanIntrHandler()</a>, <a class="el" href="group__mcdma.html#ga0611fd6496b02ad71158a7e9440cf970">XMcdma_IntrHandler()</a>, and <a class="el" href="group__mcdma.html#ga5b50b1e3a32412a7fdfd98de22e9f2a8">XMcdma_TxIntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gab3d29e0b1c602b5217f446c30e29d418"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_ChanGetIrq</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(XMcdma_ReadReg(Chan-&gt;ChanBase, ((Chan-&gt;Chan_id - 1) * XMCDMA_NXTCHAN_OFFSET + \</div>
<div class="line">                                         XMCDMA_SR_OFFSET)) &amp; XMCDMA_IRQ_ALL_MASK)</div>
</div><!-- fragment -->
<p>This function gets the interrupts that are asserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to Operate on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The bit mask for the interrupts asserted.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaabd1faa395039ac6938d36ba10092b26">XMcdma_ChanIntrHandler()</a>, <a class="el" href="group__mcdma.html#ga0611fd6496b02ad71158a7e9440cf970">XMcdma_IntrHandler()</a>, and <a class="el" href="group__mcdma.html#ga5b50b1e3a32412a7fdfd98de22e9f2a8">XMcdma_TxIntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="ga56bedd6346bb7deaefc4c46c98e02a8b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_ChanHwIsStarted</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan_id&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((XMcdma_ReadReg((Chan)-&gt;ChanBase, (XMCDMA_CR_OFFSET + \</div>
<div class="line">                                            (Chan_id - 1) * XMCDMA_NXTCHAN_OFFSET)) \</div>
<div class="line">          &amp; XMCDMA_CCR_RUNSTOP_MASK) ? TRUE : FALSE)</div>
</div><!-- fragment -->
<p>Check whether a DMA channel is started, meaning the channel is not halted. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the channel instance to operate on. </td></tr>
    <tr><td class="paramname">Chan_id</td><td>is the channel number to operate on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>1 if channel is started</li>
<li>0 otherwise</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: int <a class="el" href="group__mcdma.html#ga56bedd6346bb7deaefc4c46c98e02a8b" title="Check whether a DMA channel is started, meaning the channel is not halted. ">XMcdma_ChanHwIsStarted(XMcdma_ChanCtrl *Chan, u32 Chan_id)</a> </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#ga7d613e34ee855d64d50a462e272bcf38">XMcdma_UpdateChanTDesc()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1bc2a65071095610e00ba9012176882c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_DisableCh</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ChanId&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(XMcdma_WriteReg(Chan-&gt;ChanBase,(XMCDMA_CHEN_OFFSET), \</div>
<div class="line">                         XMcdma_ReadReg((Chan)-&gt;ChanBase, XMCDMA_CHEN_OFFSET) &amp; \</div>
<div class="line">                         ~(ChanId &amp; XMCDMA_CHEN_MASK)))</div>
</div><!-- fragment -->
<p>Disable Particular Channel in the MCDMA Core. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on. </td></tr>
    <tr><td class="paramname">ChanId</td><td>is the channel to disable.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: <a class="el" href="group__mcdma.html#ga1bc2a65071095610e00ba9012176882c" title="Disable Particular Channel in the MCDMA Core. ">XMcdma_DisableCh(XMcdma_ChanCtrl *Chan, u32 ChanId)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga1fdc6a4a27f6bd75aff05334be9060ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcDma_GetBdSbandStats</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SIDEBAND_STS_OFFSET)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the side band status of a BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Use XMDMA_BD_STS_*** values defined in xmdma_hw.h to interpret the returned value</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u32 <a class="el" href="group__mcdma.html#ga1fdc6a4a27f6bd75aff05334be9060ce" title="Retrieve the side band status of a BD. ">XMcDma_GetBdSbandStats(XMcdma_Bd* BdPtr)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gabeff42d8209d2ec458c68e01ca33e227"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetChan</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan</td><td>)</td>
          <td>&#160;&#160;&#160;XMcdma_ReadReg(Chan-&gt;ChanBase, XMCDMA_CHSER_OFFSET)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get Channel number that last Serviced. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Channel Number that last serviced.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: <a class="el" href="group__mcdma.html#gabeff42d8209d2ec458c68e01ca33e227" title="Get Channel number that last Serviced. ">XMcdma_GetChan(XMcdma_ChanCtrl *Chan)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga89a47e23338e81af4b70fc1695dd0dc7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetChanBdDoneCnt</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan</td><td>)</td>
          <td>&#160;&#160;&#160;((Chan)-&gt;BdDoneCnt)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This functions gives the Buffer descriptor count processed by the h/w. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to Operate on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Buffer descriptor count processed by the h/w.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMdma_ChanCtrl *XMcdma_GetChanBdDoneCnt(XMcdma_ChanCtrl * Chan) </dd></dl>

</div>
</div>
<a class="anchor" id="ga2d47abf303bec3ae6d5aa7fdebc7c580"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetChanCurBd</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan</td><td>)</td>
          <td>&#160;&#160;&#160;((Chan)-&gt;BdRestart)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the Channel BD Chain Current BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to Operate on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Channel BD Chain current Buffer descriptor.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMdma_ChanCtrl *XMcdma_GetChanCurBd(XMcdma_ChanCtrl * Chan) </dd></dl>

</div>
</div>
<a class="anchor" id="gabfce8f7b9dc25e7340a2a6c41ecd1a6a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetChanPktDrp_Cnt</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ChanId&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMcdma_ReadReg(Chan-&gt;ChanBase, ((ChanId - 1) * XMCDMA_NXTCHAN_OFFSET + \</div>
<div class="line">                                        XMCDMA_PKTDROP_OFFSET))</div>
</div><!-- fragment -->
<p>Get Packet drop Count for the particular Channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on. </td></tr>
    <tr><td class="paramname">ChanId</td><td>is the Channel number to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Packet Drop Count.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma *XMcdma_GetChanPktDrp_Cnt(XMcdma_ChanCtrl *Chan, u32 ChanId) </dd></dl>

</div>
</div>
<a class="anchor" id="ga8fb6fc557536472a892bece103e81278"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetEgressObserver</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ObsId&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMcdma_ReadReg(InstancePtr-&gt;Config.BaseAddress, (((ObsId - 1) * XMCDMA_NXTOBS_OFFSET) + \</div>
<div class="line">                        XMCDMA_CHOBS1_OFFSET))</div>
</div><!-- fragment -->
<p>Get Egress Channel Observer contents. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the driver instance we are working on. </td></tr>
    <tr><td class="paramname">ObsId</td><td>is the Egress Channel observer number to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Channel Observer register contents.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma *XMcdma_GetEgressObserver(XMcdma *InstancePtr, u32 ObsId) </dd></dl>

</div>
</div>
<a class="anchor" id="ga9a81f3da8edddfb80691f066d9534f0b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetIngressObserver</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ObsId&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMcdma_ReadReg(InstancePtr-&gt;Config.BaseAddress, (((ObsId - 1) * XMCDMA_NXTOBS_OFFSET) + \</div>
<div class="line">                        XMCDMA_RX_OFFSET + XMCDMA_CHOBS1_OFFSET))</div>
</div><!-- fragment -->
<p>Get Ingress Channel Observer contents. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the driver instance we are working on. </td></tr>
    <tr><td class="paramname">ObsId</td><td>is the Ingress Channel observer number to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Channel Observer register contents.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma *XMcdma_GetIngressObserver(XMcdma *InstancePtr, u32 ObsId) </dd></dl>

</div>
</div>
<a class="anchor" id="gaa74b7d0275bf35929090bc363e40e8e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetMcdmaRxChan</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ChanId&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(&amp;((InstancePtr)-&gt;Rx_Chan[ChanId]))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the RX Channel Pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the DMA engine instance to be worked on. </td></tr>
    <tr><td class="paramname">ChanId</td><td>is the channel to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the Channel</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma_ChanCtrl *XMcdma_McdmaRxChan(XMcdma * InstancePtr, u32 ChanId) </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#ga0611fd6496b02ad71158a7e9440cf970">XMcdma_IntrHandler()</a>, and <a class="el" href="group__mcdma.html#ga33076a9ec260fdf36a3bcb8517378e4a">XMcdma_ResetIsDone()</a>.</p>

</div>
</div>
<a class="anchor" id="ga073e95182b25a8427ae5f5a0d7896ee3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetMcdmaTxChan</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ChanId&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;(&amp;((InstancePtr)-&gt;Tx_Chan[ChanId]))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the TX Channel Pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the DMA engine instance to be worked on. </td></tr>
    <tr><td class="paramname">ChanId</td><td>is the channel to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the Channel</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma_ChanCtrl *XMcdma_McdmaTxChan(XMcdma * InstancePtr, u32 ChanId) </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#ga33076a9ec260fdf36a3bcb8517378e4a">XMcdma_ResetIsDone()</a>, and <a class="el" href="group__mcdma.html#ga5b50b1e3a32412a7fdfd98de22e9f2a8">XMcdma_TxIntrHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="gade198ec9289ba1e4fdc6f93dc0497f53"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_GetPktDrp_cnt</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan</td><td>)</td>
          <td>&#160;&#160;&#160;XMcdma_ReadReg(Chan-&gt;ChanBase, XMCDMA_CPKTDROP_OFFSET)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets global Packet drop Count. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Packet Drop Count.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: XMcdma *XMcdma_GetPktDrp_cnt(XMcdma_ChanCtrl *Chan) </dd></dl>

</div>
</div>
<a class="anchor" id="ga5fb0bfe1188cf10ace3f6788cb19f4d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_HwIsStarted</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((XMcdma_ReadReg((Chan)-&gt;ChanBase, XMCDMA_CSR_OFFSET)   \</div>
<div class="line">          &amp; XMCDMA_CSR_HALTED_MASK) ? FALSE : TRUE)</div>
</div><!-- fragment -->
<p>Check whether a DMA is started, meaning the channel is not halted. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the channel instance to operate on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>1 if channel is started</li>
<li>0 otherwise</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: int <a class="el" href="group__mcdma.html#ga56bedd6346bb7deaefc4c46c98e02a8b" title="Check whether a DMA channel is started, meaning the channel is not halted. ">XMcdma_ChanHwIsStarted(XMcdma_ChanCtrl *Chan)</a> </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#ga7d613e34ee855d64d50a462e272bcf38">XMcdma_UpdateChanTDesc()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0cae8085bfa21556cdf49fd6deb3e988"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_IntrDisable</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Mask&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(XMcdma_WriteReg((Chan)-&gt;ChanBase,  \</div>
<div class="line">                         (Chan-&gt;Chan_id - 1) * XMCDMA_NXTCHAN_OFFSET + XMCDMA_CR_OFFSET, \</div>
<div class="line">                         XMcdma_ReadReg((Chan)-&gt;ChanBase, (Chan-&gt;Chan_id - 1) * \</div>
<div class="line">                                        XMCDMA_NXTCHAN_OFFSET + XMCDMA_CR_OFFSET) &amp; \</div>
<div class="line">                         ~((Mask) &amp; XMCDMA_IRQ_ALL_MASK)))</div>
</div><!-- fragment -->
<p>This function disables interrupts specified by the Mask. </p>
<p>Interrupts that are not in the mask are not affected.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on. </td></tr>
    <tr><td class="paramname">Mask</td><td>is the mask for the interrupts to be disabled</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

</div>
</div>
<a class="anchor" id="ga61b5376a97f50b705e511b61cf3a60fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_IntrEnable</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Mask&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(XMcdma_WriteReg((Chan)-&gt;ChanBase, \</div>
<div class="line">                         (Chan-&gt;Chan_id - 1) * XMCDMA_NXTCHAN_OFFSET + XMCDMA_CR_OFFSET, \</div>
<div class="line">                         XMcdma_ReadReg((Chan)-&gt;ChanBase, (Chan-&gt;Chan_id - 1) *    \</div>
<div class="line">                                        XMCDMA_NXTCHAN_OFFSET + XMCDMA_CR_OFFSET) | \</div>
<div class="line">                         ((Mask) &amp; XMCDMA_IRQ_ALL_MASK)))</div>
</div><!-- fragment -->
<p>This function enables interrupts specified by the Mask in specified direction, Interrupts that are not in the mask are not affected. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on. </td></tr>
    <tr><td class="paramname">Mask</td><td>is the mask for the interrupts to be enabled</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

</div>
</div>
<a class="anchor" id="ga41c96779020fb2e7a57a5a9b0c6796dc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_isidle</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chan</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(XMcdma_ReadReg(Chan-&gt;ChanBase, XMCDMA_SR_OFFSET) &amp; \</div>
<div class="line">         XMCDMA_SR_IDLE_MASK)</div>
</div><!-- fragment -->
<p>This function checks whether DMA is Idle or not. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>TRUE if MCDMA is idle</li>
<li>FALSE if MCDMA is not idle</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

</div>
</div>
<a class="anchor" id="ga429520331f11493daf6c29e1e453dd39"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_SetARCache</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Value&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMcdma_WriteReg(InstancePtr-&gt;Config.BaseAddress,             \</div>
<div class="line">                        XMCDMA_TXAXCACHE_OFFSET,                     \</div>
<div class="line">                        (Value) &amp; XMCDMA_AXCACHE_MASK)</div>
</div><!-- fragment -->
<p>This function sets the ARCACHE field with the user specified value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the driver instance we are working on </td></tr>
    <tr><td class="paramname">Value</td><td>is the ARCACHE value to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaded8280c89d619daddc45d217358a319">XMcDma_CfgInitialize()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa37c506ba7ce16b5c7fd371aba2d99c6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_SetAWCache</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">InstancePtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Value&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">XMcdma_WriteReg(InstancePtr-&gt;Config.BaseAddress,             \</div>
<div class="line">                        XMCDMA_RXAXCACHE_OFFSET + XMCDMA_RX_OFFSET,  \</div>
<div class="line">                        (Value) &amp; XMCDMA_AXCACHE_MASK)</div>
</div><!-- fragment -->
<p>This function sets the AWCACHE field with the user specified value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the driver instance we are working on </td></tr>
    <tr><td class="paramname">Value</td><td>is the AWCACHE value to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaded8280c89d619daddc45d217358a319">XMcDma_CfgInitialize()</a>.</p>

</div>
</div>
<a class="anchor" id="gac3801a964c4a8acafc826d83fb54dcfc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcDma_TxBdGetActualLength</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">LengthMask&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SIDEBAND_STS_OFFSET) &amp; \</div>
<div class="line">         LengthMask)</div>
<div class="ttc" id="group__mcdma_html_ga4a9c2fa82ee0b3c7518b7b9125a447e0"><div class="ttname"><a href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a></div><div class="ttdeci">#define XMcdma_BdRead(BaseAddress, Offset)</div><div class="ttdoc">Read the given Buffer Descriptor word. </div><div class="ttdef"><b>Definition:</b> xmcdma_bd.h:66</div></div>
</div><!-- fragment -->
<p>Get the actual transfer length of a Egress(MM2S) BD. </p>
<p>The BD has completed in hw.</p>
<p>This function may not work if the BD is in cached memory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to check on </td></tr>
    <tr><td class="paramname">LengthMask</td><td>is the Maximum Transfer Length.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: int <a class="el" href="group__mcdma.html#gac3801a964c4a8acafc826d83fb54dcfc" title="Get the actual transfer length of a Egress(MM2S) BD. ">XMcDma_TxBdGetActualLength(XMcdma_Bd* BdPtr, u32 LengthMask)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga82a87f60a63faa72e95feea2d1af82a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcDma_TxBdGetSts</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SIDEBAND_STS_OFFSET)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the status of a Egress(MM2S) BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Use XMDMA_BD_STS_*** values defined in xmdma_hw.h to interpret the returned value</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: u32 <a class="el" href="group__mcdma.html#ga82a87f60a63faa72e95feea2d1af82a6" title="Retrieve the status of a Egress(MM2S) BD. ">XMcDma_TxBdGetSts(XMcdma_Bd* BdPtr)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga659947c1fbe19d3ca1f0415af9850c15"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XMcdma_TxBdHwCompleted</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">BdPtr</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>((BdPtr), XMCDMA_BD_SIDEBAND_STS_OFFSET) &amp; \</div>
<div class="line">         XMCDMA_BD_STS_COMPLETE_MASK)</div>
<div class="ttc" id="group__mcdma_html_ga4a9c2fa82ee0b3c7518b7b9125a447e0"><div class="ttname"><a href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a></div><div class="ttdeci">#define XMcdma_BdRead(BaseAddress, Offset)</div><div class="ttdoc">Read the given Buffer Descriptor word. </div><div class="ttdef"><b>Definition:</b> xmcdma_bd.h:66</div></div>
</div><!-- fragment -->
<p>Check whether a Egress(MM2S) BD has completed in hardware. </p>
<p>This BD has been submitted to hardware. The application can use this function To poll for the Completion of the BD.</p>
<p>This function may not work if the BD is in cached memory.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to check on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>0 if not complete</li>
<li>XMCDMA_BD_STS_COMPLETE_MASK if completed, may contain XMDMA_BD_STS_*_ERR_MASK bits.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>C-style signature: int <a class="el" href="group__mcdma.html#ga659947c1fbe19d3ca1f0415af9850c15" title="Check whether a Egress(MM2S) BD has completed in hardware. ">XMcdma_TxBdHwCompleted(XMcdma_Bd* BdPtr)</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga23f0ed35a8741b8700d3b70ce712e1a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mcdma.html#ga23f0ed35a8741b8700d3b70ce712e1a8">XMcdma_ChanHandler</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga23f0ed35a8741b8700d3b70ce712e1a8aa5ab43f15fe512c92b5d17ea462b0dd9"></a>XMCDMA_CHAN_HANDLER_DONE</em>&nbsp;</td><td class="fielddoc">
<p>For Done Handler. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga23f0ed35a8741b8700d3b70ce712e1a8a6451b15674b08fc9152420efaed81310"></a>XMCDMA_CHAN_HANDLER_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>For Error Handler. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga23f0ed35a8741b8700d3b70ce712e1a8a3f4ea7cef6b890fcbfa5a19197cc6eb5"></a>XMCDMA_CHAN_HANDLER_PKTDROP</em>&nbsp;</td><td class="fielddoc">
<p>For Error Handler. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga2a24cc98e345bcce378cc5a48950b951"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__mcdma.html#ga2a24cc98e345bcce378cc5a48950b951">XMcdma_Handler</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga2a24cc98e345bcce378cc5a48950b951a532392b7f692703eea36f4fed4d46d9f"></a>XMCDMA_TX_HANDLER_DONE</em>&nbsp;</td><td class="fielddoc">
<p>For Done Handler. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2a24cc98e345bcce378cc5a48950b951ab707f173a6335499f6d605cf9edc7f36"></a>XMCDMA_TX_HANDLER_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>For Error Handler. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2a24cc98e345bcce378cc5a48950b951a244c802f636b3c93951e43c84b328cb9"></a>XMCDMA_HANDLER_DONE</em>&nbsp;</td><td class="fielddoc">
<p>For Done Handler. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2a24cc98e345bcce378cc5a48950b951a03514ef8324cf6f58346bca7543d35f0"></a>XMCDMA_HANDLER_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>For Error Handler. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2a24cc98e345bcce378cc5a48950b951a9c1e4b4d6db67e31956c60415f142283"></a>XMCDMA_HANDLER_PKTDROP</em>&nbsp;</td><td class="fielddoc">
<p>For Error Handler. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gac503b02c1b13e908931f84facd8eae44"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XMcdma_BdChainFree </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>BdCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XMcdma_Bd *&#160;</td>
          <td class="paramname"><em>BdSetPtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Frees a set of BDs that had been previously retrieved with <a class="el" href="group__mcdma.html#gaab94e04161d34aae300d76dd51948117" title="Returns a set of BD(s) that have been processed by hardware. ">XMcdma_BdChainFromHW()</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.. </td></tr>
    <tr><td class="paramname">BdCount</td><td>is the number of BDs to free. </td></tr>
    <tr><td class="paramname">BdSetPtr</td><td>is the head of a list of BDs returned by <a class="el" href="group__mcdma.html#gaab94e04161d34aae300d76dd51948117" title="Returns a set of BD(s) that have been processed by hardware. ">XMcdma_BdChainFromHW()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the set of BDs was freed.</li>
<li>XST_INVALID_PARAM if NumBd is negative</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function should not be preempted by another XAxiMcDma function call that modifies the BD space. It is the caller's responsibility to ensure mutual exclusion. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga66f21c01fc70df953e940e61d6fc133e">XMcdma_BdChainNextBd</a>, and <a class="el" href="group__mcdma.html#gaed8f4b77eb238817267116c08caaa857">XMcdma_BdClear</a>.</p>

</div>
</div>
<a class="anchor" id="gaab94e04161d34aae300d76dd51948117"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XMcdma_BdChainFromHW </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>BdLimit</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XMcdma_Bd **&#160;</td>
          <td class="paramname"><em>BdSetPtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a set of BD(s) that have been processed by hardware. </p>
<p>The returned BDs may be examined by the application to determine the outcome of the DMA transactions. Once the BDs have been examined, the application must call <a class="el" href="group__mcdma.html#gac503b02c1b13e908931f84facd8eae44" title="Frees a set of BDs that had been previously retrieved with XMcdma_BdChainFromHW(). ">XMcdma_BdChainFree()</a> in the same order which they were retrieved here.</p>
<p>If hardware has partially completed a packet spanning multiple BDs, then none of the BDs for that packet will be included in the results.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.. </td></tr>
    <tr><td class="paramname">BdLimit</td><td>is the maximum number of BDs to return in the set. </td></tr>
    <tr><td class="paramname">BdSetPtr</td><td>is an output parameter, it points to the first BD available for examination.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of BDs processed by hardware. A value of 0 indicates that no data is available. No more than BdLimit BDs will be returned.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Treat BDs returned by this function as read-only. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga66f21c01fc70df953e940e61d6fc133e">XMcdma_BdChainNextBd</a>, and <a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>.</p>

</div>
</div>
<a class="anchor" id="ga9295d5a6e89fe6a6471371191078b7fc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcDma_BdGetAppWord </td>
          <td>(</td>
          <td class="paramtype">XMcdma_Bd *&#160;</td>
          <td class="paramname"><em>BdPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>Valid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the APP word at the specified APP word offset for a BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on. </td></tr>
    <tr><td class="paramname">Offset</td><td>is the offset inside the APP word, it is valid from 0 to 4 </td></tr>
    <tr><td class="paramname">Valid</td><td>is to tell the caller whether parameters are valid</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The APP word. Passed in parameter Valid holds 0 for failure, and 1 for success. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>.</p>

</div>
</div>
<a class="anchor" id="ga357821499f1231555343dc309c59c67a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XMcDma_BdSetAppWord </td>
          <td>(</td>
          <td class="paramtype">XMcdma_Bd *&#160;</td>
          <td class="paramname"><em>BdPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Word</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the APP word at the specified APP word offset for a BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on </td></tr>
    <tr><td class="paramname">Offset</td><td>is the offset inside the APP word, it is valid from 0 to 4 </td></tr>
    <tr><td class="paramname">Word</td><td>is the value to set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS for success</li>
<li>XST_INVALID_PARAM under following error conditions. 1) StsCntrlStrm is not built in hardware 2) Offset is not in valid range </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>, and <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>.</p>

</div>
</div>
<a class="anchor" id="ga2a2cc690650d389e820be2aa8a078024"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcdma_BdSetBufAddr </td>
          <td>(</td>
          <td class="paramtype">XMcdma_Bd *&#160;</td>
          <td class="paramname"><em>BdPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINTPTR&#160;</td>
          <td class="paramname"><em>Addr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the Buffer descriptor buffer address field. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on </td></tr>
    <tr><td class="paramname">Addr</td><td>is the address to set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if buffer address set successfully</li>
<li>XST_INVALID_PARAM if hardware has no DRE and address is not aligned </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>, <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>, and <a class="el" href="group__mcdma.html#gac1edd764edccb7e6c240eed49bd073ae">XMcdma_BdWrite64</a>.</p>

<p>Referenced by <a class="el" href="group__mcdma.html#gaea3a22718a28af2430b0508f213b96d1">XMcDma_Chan_Sideband_Submit()</a>, and <a class="el" href="group__mcdma.html#ga043e7eb1811040fdbdafe288cd4ac5ea">XMcDma_ChanSubmit()</a>.</p>

</div>
</div>
<a class="anchor" id="ga2388e0cd3c27b0c675f308b74a0e6b21"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcDma_BdSetCtrl </td>
          <td>(</td>
          <td class="paramtype">XMcdma_Bd *&#160;</td>
          <td class="paramname"><em>BdPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the control bits for a BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on. </td></tr>
    <tr><td class="paramname">Data</td><td>is the bit value to set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>, and <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>.</p>

</div>
</div>
<a class="anchor" id="gaded8280c89d619daddc45d217358a319"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XMcDma_CfgInitialize </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XMcdma_Config *&#160;</td>
          <td class="paramname"><em>CfgPtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes an MCDMA core. </p>
<p>This function must be called prior to using an MCDMA core. Initialization of an MCDMA includes setting up the instance data and ensuring the hardware is in a quiescent state and resets all the hardware configurations.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XMcdma instance. </td></tr>
    <tr><td class="paramname">CfgPtr</td><td>is a reference to a structure containing information about a specific XMcdma instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#gac48d708f62efed396346f941c139bd3d">XMcDma_Initialize()</a>, <a class="el" href="group__mcdma.html#ga9e8a276d4f1cc7a87afbc4ee1b2e43e8">XMcDma_Reset()</a>, <a class="el" href="group__mcdma.html#ga33076a9ec260fdf36a3bcb8517378e4a">XMcdma_ResetIsDone()</a>, <a class="el" href="group__mcdma.html#ga429520331f11493daf6c29e1e453dd39">XMcdma_SetARCache</a>, and <a class="el" href="group__mcdma.html#gaa37c506ba7ce16b5c7fd371aba2d99c6">XMcdma_SetAWCache</a>.</p>

<p>Referenced by <a class="el" href="xmcdma__interrupt__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main()</a>.</p>

</div>
</div>
<a class="anchor" id="gaea3a22718a28af2430b0508f213b96d1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcDma_Chan_Sideband_Submit </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>ChanPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINTPTR&#160;</td>
          <td class="paramname"><em>BufAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32 *&#160;</td>
          <td class="paramname"><em>AppPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>Tuser</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>Tid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function populates the BD Chain with the required buffer address, length APP(user application), TUSER and TID fields. </p>
<p>User can submit multiple buffers/buffer descriptors by calling this function multiple times</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ChanPtr</td><td>is the MCDMA Channel to be worked on.. </td></tr>
    <tr><td class="paramname">BufAddr</td><td>is the buffer address to which data should send/recv. </td></tr>
    <tr><td class="paramname">Len</td><td>is the Amount of data user requested to send/recv. </td></tr>
    <tr><td class="paramname">AppPtr</td><td>is the point to APP fields. </td></tr>
    <tr><td class="paramname">Tuser</td><td>is the value presented on the beat that has TLAST. </td></tr>
    <tr><td class="paramname">Tid</td><td>is the value value presented on the beat that has TLAST.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful</li>
<li>XST_FAILURE if the BdStartAddress or requested bdlen doesn't match for the driver requirements. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga66f21c01fc70df953e940e61d6fc133e">XMcdma_BdChainNextBd</a>, <a class="el" href="group__mcdma.html#gaed8f4b77eb238817267116c08caaa857">XMcdma_BdClear</a>, <a class="el" href="group__mcdma.html#ga2a2cc690650d389e820be2aa8a078024">XMcdma_BdSetBufAddr()</a>, <a class="el" href="group__mcdma.html#gac8b57c02f29151129d0c5873d26bbda2">XMcDma_BdSetCtrlSideBand</a>, and <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>.</p>

</div>
</div>
<a class="anchor" id="ga5cb928c2177632d162e1f83b9df818a4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcDma_ChanBdCreate </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINTPTR&#160;</td>
          <td class="paramname"><em>Addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>Count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Using a memory segment allocated by the caller, This function creates and setup the BD Chain for the MCDMA Channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.. </td></tr>
    <tr><td class="paramname">Addr</td><td>is the address of the application memory region. </td></tr>
    <tr><td class="paramname">Count</td><td>is the number of BDs to setup in the application memory region.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful</li>
<li>XST_INVALID_PARAM if Count is not positive. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>.</p>

</div>
</div>
<a class="anchor" id="ga792b8ea5ccc876d81e0b3ca0bb3a028b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcdma_ChanHwStop </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stops the DMA engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the Channel instance to be worked on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS for success.</li>
<li>XST_FAILURE if hardware fails stop.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

</div>
</div>
<a class="anchor" id="gaabd1faa395039ac6938d36ba10092b26"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcdma_ChanIntrHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>Instance</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the Per Channel interrupt handler for the MCDMA core. </p>
<p>This handler reads the pending interrupt from Status register, determines the source of the interrupts and calls the respective callbacks for the interrupts that are enabled in the per channel control register, and finally clears the interrupts.</p>
<p>The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using <a class="el" href="group__mcdma.html#ga79e33f0517b2d20391e3f9889820383c" title="This routine installs an asynchronous callback function for the given HandlerType. ">XMcdma_ChanSetCallBack()</a> during initialization phase.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Instance</td><td>is a pointer to the Channel instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To generate interrupt required interrupts should be enabled. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#gaa173f1c898d8325859c852d88debb703">XMcdma_ChanAckIrq</a>, and <a class="el" href="group__mcdma.html#gab3d29e0b1c602b5217f446c30e29d418">XMcdma_ChanGetIrq</a>.</p>

</div>
</div>
<a class="anchor" id="ga79e33f0517b2d20391e3f9889820383c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XMcdma_ChanSetCallBack </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__mcdma.html#ga23f0ed35a8741b8700d3b70ce712e1a8">XMcdma_ChanHandler</a>&#160;</td>
          <td class="paramname"><em>HandlerType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallBackFunc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallBackRef</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This routine installs an asynchronous callback function for the given HandlerType. </p>
<pre>
HandlerType              Callback Function Type
-----------------------  --------------------------------------------------
XMCDMA_HANDLER_DONE      Channel Done handler
XMCDMA_HANDLER_ERROR     Channel Error handler</pre><pre></pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the Channel instance to be worked on </td></tr>
    <tr><td class="paramname">HandlerType</td><td>specifies which callback is to be attached. </td></tr>
    <tr><td class="paramname">CallBackFunc</td><td>is the address of the callback function. </td></tr>
    <tr><td class="paramname">CallBackRef</td><td>is a user data item that will be passed to the callback function when it is invoked.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS when handler is installed.</li>
<li>XST_INVALID_PARAM when HandlerType is invalid.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Invoking this function for a handler that already has been installed replaces it with the new handler. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#gga23f0ed35a8741b8700d3b70ce712e1a8aa5ab43f15fe512c92b5d17ea462b0dd9">XMCDMA_CHAN_HANDLER_DONE</a>, and <a class="el" href="group__mcdma.html#gga23f0ed35a8741b8700d3b70ce712e1a8a6451b15674b08fc9152420efaed81310">XMCDMA_CHAN_HANDLER_ERROR</a>.</p>

</div>
</div>
<a class="anchor" id="ga043e7eb1811040fdbdafe288cd4ac5ea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcDma_ChanSubmit </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINTPTR&#160;</td>
          <td class="paramname"><em>BufAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function Populates the BD Chain with the required buffer address and length fields. </p>
<p>User can submit multiple buffers/buffer descriptors by calling this function multiple times</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.. </td></tr>
    <tr><td class="paramname">BufAddr</td><td>is the buffer address to which data should send/recv. </td></tr>
    <tr><td class="paramname">len</td><td>is the Amount of data user requested to send/recv.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful</li>
<li>XST_FAILURE if the BdStartAddress or requested bdlen doesn't match for the driver requirements. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga66f21c01fc70df953e940e61d6fc133e">XMcdma_BdChainNextBd</a>, <a class="el" href="group__mcdma.html#gaed8f4b77eb238817267116c08caaa857">XMcdma_BdClear</a>, <a class="el" href="group__mcdma.html#ga2a2cc690650d389e820be2aa8a078024">XMcdma_BdSetBufAddr()</a>, and <a class="el" href="group__mcdma.html#ga2e9ebef9ab28ab4e942a1c6415cebc08">XMcdma_BdWrite</a>.</p>

</div>
</div>
<a class="anchor" id="gadccaaa44cfbb7f8c45790050fa14a9aa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcDma_ChanToHw </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function triggers/Starts the h/w by programming the Current and Tail Descriptors and enabling the particular channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on..</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful</li>
<li>XST_FAILURE In case of failure </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga91a72a8c74cd2137ff49c83d2e275a93">XMcdma_EnableCh()</a>, <a class="el" href="group__mcdma.html#ga34e74ad4836bc9c82d3288ccc41516ae">XMcdma_UpdateChanCDesc()</a>, and <a class="el" href="group__mcdma.html#ga7d613e34ee855d64d50a462e272bcf38">XMcdma_UpdateChanTDesc()</a>.</p>

</div>
</div>
<a class="anchor" id="ga20e854946069868d98b43a144f282093"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcDma_DumpBd </td>
          <td>(</td>
          <td class="paramtype">XMcdma_Bd *&#160;</td>
          <td class="paramname"><em>BdPtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dump the fields of a BD. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">BdPtr</td><td>is the BD to operate on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga4a9c2fa82ee0b3c7518b7b9125a447e0">XMcdma_BdRead</a>.</p>

</div>
</div>
<a class="anchor" id="gabfe362aabed422da639b3fa8f8d8371b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcdma_DumpChanRegs </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dump the registers for a channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None </dd></dl>

</div>
</div>
<a class="anchor" id="ga91a72a8c74cd2137ff49c83d2e275a93"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcdma_EnableCh </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enables a particular channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the Channel instance to be worked on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gadccaaa44cfbb7f8c45790050fa14a9aa">XMcDma_ChanToHw()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7eceaf95d0f2c23ac4e4c5ce0fdf9920"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u16 XMcdma_GetChanServiced </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the last serviced s2mm channel number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the DMA engine instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Channel id that last serviced.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

</div>
</div>
<a class="anchor" id="gaf5bbe52004ff30b9cab2d3a1bec4c1fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u16 XMcdma_GetTxChanServiced </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the last serviced mm2s channel number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the DMA engine instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Channel id that last serviced.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

</div>
</div>
<a class="anchor" id="gac48d708f62efed396346f941c139bd3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XMcDma_Initialize </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">XMcdma_Config *&#160;</td>
          <td class="paramname"><em>CfgPtr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes an MCDMA core. </p>
<p>This function must be called prior to using an MCDMA core. Initialization of an MCDMA includes setting up the instance data and updating the driver filed with a proper values.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XMcdma instance. </td></tr>
    <tr><td class="paramname">CfgPtr</td><td>is a reference to a structure containing information about a specific XMcdma instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>When user calls this function he should ensure the hardware is in a quiescent state by resetting all the hardware Configurations. </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaded8280c89d619daddc45d217358a319">XMcDma_CfgInitialize()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0611fd6496b02ad71158a7e9440cf970"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcdma_IntrHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>Instance</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the S2MM(RX) interrupt handler for the MCDMA core. </p>
<p>This handler reads the pending interrupt from Status register, determines the source of the interrupts and calls the respective callbacks for the interrupts that are enabled in global control register, and finally clears the interrupts.</p>
<p>The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using <a class="el" href="group__mcdma.html#ga324c2be8905eca72caa7111f0ef6b827" title="This routine installs an asynchronous callback function for the given HandlerType. ">XMcdma_SetCallBack()</a> during initialization phase.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Instance</td><td>is a pointer to the XMcdma instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To generate interrupt required interrupts should be enabled. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#gaa173f1c898d8325859c852d88debb703">XMcdma_ChanAckIrq</a>, <a class="el" href="group__mcdma.html#gab3d29e0b1c602b5217f446c30e29d418">XMcdma_ChanGetIrq</a>, and <a class="el" href="group__mcdma.html#gaa74b7d0275bf35929090bc363e40e8e4">XMcdma_GetMcdmaRxChan</a>.</p>

</div>
</div>
<a class="anchor" id="ga62a895328daf1573051668904d39570e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XMcdma_Config* XMcdma_LookupConfig </td>
          <td>(</td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>XMcdma_LookupConfig returns a reference to an XMcdma_Config structure based on the unique device id, <em>DeviceId</em>. </p>
<p>The return value will refer to an entry in the device configuration table defined in the xmcdma_g.c file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DeviceId</td><td>is the unique device ID of the device for the lookup operation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>CfgPtr is a reference to a config record in the configuration table (in xmcdma_g.c) corresponding to <em>DeviceId</em>, or NULL if no match is found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="xmcdma__interrupt__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main()</a>.</p>

</div>
</div>
<a class="anchor" id="ga69935624297a5e17bcc0d766b12c8c7b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XMcdma_Config* XMcdma_LookupConfigBaseAddr </td>
          <td>(</td>
          <td class="paramtype">UINTPTR&#160;</td>
          <td class="paramname"><em>Baseaddr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>XMcdma_LookupConfigBaseAddr returns a reference to an XMcdma_Config structure based on base address. </p>
<p>The return value will refer to an entry in the device configuration table defined in the xmcdma_g.c file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Baseaddr</td><td>is the base address of the device to lookup for</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>CfgPtr is a reference to a config record in the configuration table (in xmcdma_g.c) corresponding to Baseaddr, or NULL if no match is found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ga9e8a276d4f1cc7a87afbc4ee1b2e43e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcDma_Reset </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function resets the MCDMA core. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XMcdma instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This function resets all the configurations made previously. </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gaded8280c89d619daddc45d217358a319">XMcDma_CfgInitialize()</a>, and <a class="el" href="group__mcdma.html#gaed0e1bd2bfc15f2e2fc1271eef89ca07">XMcdma_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga33076a9ec260fdf36a3bcb8517378e4a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcdma_ResetIsDone </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether reset is done. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the DMA engine instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>1 if reset is done.</li>
</ul>
</dd></dl>
<ul>
<li>0 if reset is not done</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>References <a class="el" href="group__mcdma.html#gaa74b7d0275bf35929090bc363e40e8e4">XMcdma_GetMcdmaRxChan</a>, and <a class="el" href="group__mcdma.html#ga073e95182b25a8427ae5f5a0d7896ee3">XMcdma_GetMcdmaTxChan</a>.</p>

<p>Referenced by <a class="el" href="group__mcdma.html#gaded8280c89d619daddc45d217358a319">XMcDma_CfgInitialize()</a>, and <a class="el" href="group__mcdma.html#gaed0e1bd2bfc15f2e2fc1271eef89ca07">XMcdma_SelfTest()</a>.</p>

</div>
</div>
<a class="anchor" id="gaed0e1bd2bfc15f2e2fc1271eef89ca07"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XMcdma_SelfTest </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This file contains a diagnostic self-test function for the MCDMA driver. </p>
<p>Refer to the header file <a class="el" href="xmcdma_8h.html">xmcdma.h</a> for more detailed information.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to XMcDma instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the test is successful.</li>
<li>XST_FAILURE if the test is failed.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga9e8a276d4f1cc7a87afbc4ee1b2e43e8">XMcDma_Reset()</a>, and <a class="el" href="group__mcdma.html#ga33076a9ec260fdf36a3bcb8517378e4a">XMcdma_ResetIsDone()</a>.</p>

</div>
</div>
<a class="anchor" id="ga324c2be8905eca72caa7111f0ef6b827"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">s32 XMcdma_SetCallBack </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__mcdma.html#ga2a24cc98e345bcce378cc5a48950b951">XMcdma_Handler</a>&#160;</td>
          <td class="paramname"><em>HandlerType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallBackFunc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallBackRef</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This routine installs an asynchronous callback function for the given HandlerType. </p>
<pre>
HandlerType              Callback Function Type
-----------------------  --------------------------------------------------
XMCDMA_TX_HANDLER_DONE   MM2S(TX) Done handler
XMCDMA_TX_HANDLER_ERROR  MM2S(TX) Error handler
XMCDMA_HANDLER_DONE      S2MM(RX) Done handler
XMCDMA_HANDLER_ERROR     S2MM(RX) Error handler
XMCDMA_HANDLER_PKTDROP   S2MM(RX) Packet drop handler</pre><pre></pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XMcdma instance to be worked on. </td></tr>
    <tr><td class="paramname">HandlerType</td><td>specifies which callback is to be attached. </td></tr>
    <tr><td class="paramname">CallBackFunc</td><td>is the address of the callback function. </td></tr>
    <tr><td class="paramname">CallBackRef</td><td>is a user data item that will be passed to the callback function when it is invoked.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS when handler is installed.</li>
<li>XST_INVALID_PARAM when HandlerType is invalid.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Invoking this function for a handler that already has been installed replaces it with the new handler. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a244c802f636b3c93951e43c84b328cb9">XMCDMA_HANDLER_DONE</a>, <a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a03514ef8324cf6f58346bca7543d35f0">XMCDMA_HANDLER_ERROR</a>, <a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a9c1e4b4d6db67e31956c60415f142283">XMCDMA_HANDLER_PKTDROP</a>, <a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951a532392b7f692703eea36f4fed4d46d9f">XMCDMA_TX_HANDLER_DONE</a>, and <a class="el" href="group__mcdma.html#gga2a24cc98e345bcce378cc5a48950b951ab707f173a6335499f6d605cf9edc7f36">XMCDMA_TX_HANDLER_ERROR</a>.</p>

</div>
</div>
<a class="anchor" id="ga5a6f8e287e29edd291257dea37570c94"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcdma_SetChanCoalesceDelay </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>IrqCoalesce</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>IrqDelay</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set interrupt coalescing parameters for a particular channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.. </td></tr>
    <tr><td class="paramname">IrqCoalesce</td><td>is the Irq Threshold value valid ranges are 1 to 255 </td></tr>
    <tr><td class="paramname">IrqDelay</td><td>is the Irq Delay value valid ranges are 1 to 255</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if Interrupt Coalescing settings updated</li>
<li>XST_FAILURE if IrqCoalesce and IrqDelay parameters are out of range </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="ga1fc07ce6abf4692ce13eecfde7bdc25e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcdma_SetSGARCache </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the ARCACHE field of the SG interface With the user specified value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the driver instance we are working on </td></tr>
    <tr><td class="paramname">Value</td><td>is the ARCACHE value to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ga55549abc13232f33a4c689b7e490d7ed"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcdma_SetSGAWCache </td>
          <td>(</td>
          <td class="paramtype">XMcdma *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>Value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the AWCACHE field of the SG interface With the user specified value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the driver instance we are working on </td></tr>
    <tr><td class="paramname">Value</td><td>is the AWCACHE value to be written.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ga1cb2b75af04c76888a93ad5b1063cbdc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 XMcdma_Start </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start the DMA engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the Channel instance to be worked on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS for success.</li>
<li>XST_FAILURE if starting the hardware fails.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#ga7d613e34ee855d64d50a462e272bcf38">XMcdma_UpdateChanTDesc()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5b50b1e3a32412a7fdfd98de22e9f2a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void XMcdma_TxIntrHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>Instance</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the MM2S interrupt handler for the MCDMA core. </p>
<p>This handler reads the pending interrupt from Status register, determines the source of the interrupts and calls the respective callbacks for the interrupts that are enabled in global control register, and finally clears the interrupts.</p>
<p>The application is responsible for connecting this function to the interrupt system. Application beyond this driver is also responsible for providing callbacks to handle interrupts and installing the callbacks using <a class="el" href="group__mcdma.html#ga324c2be8905eca72caa7111f0ef6b827" title="This routine installs an asynchronous callback function for the given HandlerType. ">XMcdma_SetCallBack()</a> during initialization phase.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Instance</td><td>is a pointer to the XMcdma instance to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>To generate interrupt required interrupts should be enabled. </dd></dl>

<p>References <a class="el" href="group__mcdma.html#gaa173f1c898d8325859c852d88debb703">XMcdma_ChanAckIrq</a>, <a class="el" href="group__mcdma.html#gab3d29e0b1c602b5217f446c30e29d418">XMcdma_ChanGetIrq</a>, and <a class="el" href="group__mcdma.html#ga073e95182b25a8427ae5f5a0d7896ee3">XMcdma_GetMcdmaTxChan</a>.</p>

</div>
</div>
<a class="anchor" id="ga34e74ad4836bc9c82d3288ccc41516ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XMcdma_UpdateChanCDesc </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update Current Descriptor for the MCDMA Channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the Channel instance to be worked on</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS upon success</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>Referenced by <a class="el" href="group__mcdma.html#gadccaaa44cfbb7f8c45790050fa14a9aa">XMcDma_ChanToHw()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7d613e34ee855d64d50a462e272bcf38"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XMcdma_UpdateChanTDesc </td>
          <td>(</td>
          <td class="paramtype">XMcdma_ChanCtrl *&#160;</td>
          <td class="paramname"><em>Chan</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update Tail Desc for the Channel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Chan</td><td>is the MCDMA Channel to be worked on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS upon success</li>
<li>XST_DMA_ERROR if no valid BD available to put into current BD register </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__mcdma.html#ga56bedd6346bb7deaefc4c46c98e02a8b">XMcdma_ChanHwIsStarted</a>, <a class="el" href="group__mcdma.html#ga5fb0bfe1188cf10ace3f6788cb19f4d7">XMcdma_HwIsStarted</a>, and <a class="el" href="group__mcdma.html#ga1cb2b75af04c76888a93ad5b1063cbdc">XMcdma_Start()</a>.</p>

<p>Referenced by <a class="el" href="group__mcdma.html#gadccaaa44cfbb7f8c45790050fa14a9aa">XMcDma_ChanToHw()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
